﻿Public Class DposibleCliente

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String) As List(Of EposibleCliente)
        Dim posibleClientes As List(Of EposibleCliente) = Nothing 'Es una coleccion de lista tipado (vendedor)

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleCliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            posibleClientes = New List(Of EposibleCliente)
                            Dim posibleCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                posibleCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetInt16(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                posibleClientes.Add(posibleCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return posibleClientes
    End Function
    Public Shared Function Filtra_NombreApePaternoApeMaterno(ByVal descEmpresa As String, ByVal filtro As String) As List(Of EposibleCliente)
        Dim clientes As List(Of EposibleCliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleCliente_filXNombreApePaternoApeMaterno", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clientes = New List(Of EposibleCliente)
                            Dim cliente As EposibleCliente = Nothing
                            Do While dr.Read
                                cliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")))
                                clientes.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clientes
    End Function

    'Public Shared Function SeleccionarFiltroAtencionPosClientexNombreApePaternoApeMaterno _
    '(ByVal descEmpresa As String, ByVal filtro As String, ByVal idVendedor As Int32) As List(Of EposibleCliente)
    'Public Shared Function SeleccionarFiltroAtencionPosClientexNombreApePaternoApeMaterno _
    '(ByVal descEmpresa As String, ByVal filtro As String, ByVal pVendedor As Evendedor) As List(Of EposibleCliente)
    '    Dim atencionPosClientes As List(Of EposibleCliente) = Nothing

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_atencionPosCliente_sel", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pVendedor.idProyecto
    '            cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pVendedor.idEtapa
    '            cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor.idVendedor
    '            cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
    '            Try
    '                cn.Open()
    '                Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
    '                    If dr.HasRows Then
    '                        atencionPosClientes = New List(Of EposibleCliente)
    '                        Dim atencionPosCliente As EposibleCliente = Nothing
    '                        Do While dr.Read
    '                            atencionPosCliente = New EposibleCliente( _
    '                                dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
    '                                dr.GetString(dr.GetOrdinal("nombre")), _
    '                                dr.GetString(dr.GetOrdinal("apePaterno")), _
    '                                dr.GetString(dr.GetOrdinal("apeMaterno")), _
    '                                dr.GetString(dr.GetOrdinal("telefonoFijo")), _
    '                                dr.GetString(dr.GetOrdinal("telefonoCelular")), _
    '                                dr.GetString(dr.GetOrdinal("descNivelInteres")), _
    '                                dr.GetString(dr.GetOrdinal("direccion")), _
    '                                dr.GetString(dr.GetOrdinal("email")), _
    '                                dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
    '                                dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
    '                                dr.GetString(dr.GetOrdinal("nroDocumento")), _
    '                                dr.GetString(dr.GetOrdinal("idUbigeo")), _
    '                                dr.GetString(dr.GetOrdinal("departamento")), _
    '                                dr.GetString(dr.GetOrdinal("provincia")), _
    '                                dr.GetString(dr.GetOrdinal("distrito")), _
    '                                dr.GetString(dr.GetOrdinal("centroLaboral")), _
    '                                dr.GetString(dr.GetOrdinal("telefonoLaboral")))
    '                            atencionPosClientes.Add(atencionPosCliente)
    '                        Loop
    '                        dr.Close()
    '                    End If
    '                End Using
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using
    '    Return atencionPosClientes
    'End Function
    Public Shared Function SeleccionarFiltroAtencionPosClientexNombreApePaternoApeMaterno _
    (ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EposibleCliente)
        Dim atencionPosClientes As List(Of EposibleCliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionPosCliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.idFormaContacto
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionPosClientes = New List(Of EposibleCliente)
                            Dim atencionPosCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                atencionPosCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("fchAccion")), _
                                    dr.GetInt32(dr.GetOrdinal("estadoProceso")), _
                                    dr.GetString(dr.GetOrdinal("descEstadoProceso")), _
                                    dr.GetString(dr.GetOrdinal("fechaProforma")), _
                                    dr.GetString(dr.GetOrdinal("formaContacto")), _
                                    dr.GetString(dr.GetOrdinal("comoseEntero")), _
                                    dr.GetString(dr.GetOrdinal("Vendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("NAccion")))
                                atencionPosClientes.Add(atencionPosCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionPosClientes
    End Function
    Public Shared Function SeleccionarXId(ByVal descEmpresa As String, ByVal idPosCliente As Int32) As List(Of EposibleCliente)
        Dim posibleClientes As List(Of EposibleCliente) = Nothing 'Es una coleccion de lista tipado (vendedor)

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleCliente_selXId", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = idPosCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            posibleClientes = New List(Of EposibleCliente)
                            Dim posibleCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                posibleCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")))
                                posibleClientes.Add(posibleCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return posibleClientes
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pPosibleCliente As EposibleCliente, ByRef idPosibleCliente As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleCliente_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pPosibleCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pPosibleCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pPosibleCliente.apeMaterno
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pPosibleCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pPosibleCliente.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pPosibleCliente.sexo
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pPosibleCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pPosibleCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pPosibleCliente.telefonoFijo
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pPosibleCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@telefonoLaboral", SqlDbType.VarChar, 55).Value = pPosibleCliente.telefonoLaboral
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pPosibleCliente.edad
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pPosibleCliente.email
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 80).Value = pPosibleCliente.direccion
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pPosibleCliente.telefonoCelular
                cmd.Parameters.Add("@centroLaboral", SqlDbType.VarChar, 55).Value = pPosibleCliente.centroLaboral
                cmd.Parameters.Add("@totalIngreso", SqlDbType.Decimal, 15, 2).Value = pPosibleCliente.totalIngreso
                cmd.Parameters.Add("@comentarios", SqlDbType.Text).Value = pPosibleCliente.comentarios
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosibleCliente.idUsuario
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.Text).Value = pPosibleCliente.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idPosibleCliente = Convert.ToInt64(cmd.Parameters("@idPosCliente").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pPosCliente As EposibleCliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleClienteMantenedor_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pPosCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pPosCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pPosCliente.apeMaterno
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pPosCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pPosCliente.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pPosCliente.sexo
                cmd.Parameters.Add("@edad", SqlDbType.Int, 11).Value = pPosCliente.edad
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pPosCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 40).Value = pPosCliente.email
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 40).Value = pPosCliente.direccion
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 40).Value = pPosCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 40).Value = pPosCliente.telefonoCelular
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pPosCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@centroLaboral", SqlDbType.VarChar, 55).Value = pPosCliente.centroLaboral
                cmd.Parameters.Add("@telefonoLaboral", SqlDbType.VarChar, 55).Value = pPosCliente.telefonoLaboral
                cmd.Parameters.Add("@comentarios", SqlDbType.Text).Value = pPosCliente.comentarios
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pPosCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pPosibleCliente As EposibleCliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleCliente_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pPosibleCliente.idPosCliente
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pPosibleCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pPosibleCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pPosibleCliente.apeMaterno
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pPosibleCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pPosibleCliente.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pPosibleCliente.sexo
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pPosibleCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@desEstCivil", SqlDbType.VarChar, 55).Value = pPosibleCliente.EestadoCivil.desEstCivil
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Int).Value = pPosibleCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 11).Value = pPosibleCliente.telefonoFijo
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pPosibleCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@descOcupacion", SqlDbType.VarChar, 55).Value = pPosibleCliente.Eocupacion.descOcupacion
                cmd.Parameters.Add("@telefonoLaboral", SqlDbType.VarChar, 55).Value = pPosibleCliente.telefonoLaboral
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pPosibleCliente.nroDocumento
                cmd.Parameters.Add("@edad", SqlDbType.Int).Value = pPosibleCliente.edad
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 55).Value = pPosibleCliente.email
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 55).Value = pPosibleCliente.direccion
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 11).Value = pPosibleCliente.telefonoCelular
                cmd.Parameters.Add("@centroLaboral", SqlDbType.VarChar, 55).Value = pPosibleCliente.centroLaboral
                cmd.Parameters.Add("@comentarios", SqlDbType.Text).Value = pPosibleCliente.comentarios
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pPosibleCliente.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosibleCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pPosibleCliente As EposibleCliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clienteProforma_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pPosibleCliente.idPosCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosibleCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    '-------    MENU REPORTE EVOLTA / VERSUS    ------------'
    Public Shared Function SeleccionarFiltroAtencionPosClientexNombreApePaternoApeMaternoXVersus _
    (ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EposibleCliente)
        Dim atencionPosClientes As List(Of EposibleCliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_atencionPosCliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                'cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pVendedor.idProyecto
                'cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pVendedor.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                cmd.Parameters.Add("@FechaInicial", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@FechaFinal", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            atencionPosClientes = New List(Of EposibleCliente)
                            Dim atencionPosCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                atencionPosCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")))
                                atencionPosClientes.Add(atencionPosCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return atencionPosClientes
    End Function

    Public Shared Function SeleccionarTodoMantenedor(ByVal descEmpresa As String) As List(Of EposibleCliente)
        Dim posibleClientes As List(Of EposibleCliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleClienteMantenedor_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            posibleClientes = New List(Of EposibleCliente)
                            Dim posibleCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                posibleCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")))
                                posibleClientes.Add(posibleCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return posibleClientes
    End Function
    Public Shared Function AñadirMantenedor(ByVal descEmpresa As String, ByVal pPosCliente As EposibleCliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleClienteMantenedor_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pPosCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pPosCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pPosCliente.apeMaterno
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pPosCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pPosCliente.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pPosCliente.sexo
                cmd.Parameters.Add("@edad", SqlDbType.Int, 11).Value = pPosCliente.edad
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pPosCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 40).Value = pPosCliente.email
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 40).Value = pPosCliente.direccion
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 40).Value = pPosCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 40).Value = pPosCliente.telefonoCelular
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pPosCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@centroLaboral", SqlDbType.VarChar, 55).Value = pPosCliente.centroLaboral
                cmd.Parameters.Add("@telefonoLaboral", SqlDbType.VarChar, 55).Value = pPosCliente.telefonoLaboral
                cmd.Parameters.Add("@comentarios", SqlDbType.Text).Value = pPosCliente.comentarios
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pPosCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosCliente.idUsuario
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pPosCliente.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarMantenedor(ByVal descEmpresa As String, ByVal pPosCliente As EposibleCliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleClienteMantenedor_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pPosCliente.idPosCliente
                cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 55).Value = pPosCliente.nombre
                cmd.Parameters.Add("@apePaterno", SqlDbType.VarChar, 55).Value = pPosCliente.apePaterno
                cmd.Parameters.Add("@apeMaterno", SqlDbType.VarChar, 55).Value = pPosCliente.apeMaterno
                cmd.Parameters.Add("@idTpoDcmto", SqlDbType.Int).Value = pPosCliente.EtpoDcmto.idTpoDcmto
                cmd.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 55).Value = pPosCliente.nroDocumento
                cmd.Parameters.Add("@sexo", SqlDbType.Int).Value = pPosCliente.sexo
                cmd.Parameters.Add("@edad", SqlDbType.Int, 11).Value = pPosCliente.edad
                cmd.Parameters.Add("@idEstCivil", SqlDbType.Int).Value = pPosCliente.EestadoCivil.idEstCivil
                cmd.Parameters.Add("@email", SqlDbType.VarChar, 40).Value = pPosCliente.email
                cmd.Parameters.Add("@direccion", SqlDbType.VarChar, 40).Value = pPosCliente.direccion
                cmd.Parameters.Add("@telefonoFijo", SqlDbType.VarChar, 40).Value = pPosCliente.telefonoFijo
                cmd.Parameters.Add("@telefonoCelular", SqlDbType.VarChar, 40).Value = pPosCliente.telefonoCelular
                cmd.Parameters.Add("@idOcupacion", SqlDbType.Int).Value = pPosCliente.Eocupacion.idOcupacion
                cmd.Parameters.Add("@centroLaboral", SqlDbType.VarChar, 55).Value = pPosCliente.centroLaboral
                cmd.Parameters.Add("@telefonoLaboral", SqlDbType.VarChar, 55).Value = pPosCliente.telefonoLaboral
                cmd.Parameters.Add("@comentarios", SqlDbType.Text).Value = pPosCliente.comentarios
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pPosCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pPosCliente.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosCliente.idUsuario
                cmd.Parameters.Add("@OtroDocumento", SqlDbType.VarChar, 55).Value = pPosCliente.OtroDocumento
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EliminarMantenedor(ByVal descEmpresa As String, ByVal pPosCliente As EposibleCliente) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleClienteMantenedor_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pPosCliente.idPosCliente
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pPosCliente.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function BuscarMantenedor(ByVal descEmpresa As String, ByVal pPosCliente As EposibleCliente) As List(Of EposibleCliente)
        Dim posibleClientes As List(Of EposibleCliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleClienteMantenedor_find", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pPosCliente.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            posibleClientes = New List(Of EposibleCliente)
                            Dim posibleCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                posibleCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")))
                                posibleClientes.Add(posibleCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return posibleClientes
    End Function

    Public Shared Function SeleccionarTodoXId(ByVal descEmpresa As String, ByVal idPosCliente As Int32) As List(Of EposibleCliente)
        Dim posibleClientes As List(Of EposibleCliente) = Nothing 'Es una coleccion de lista tipado (vendedor)

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_posibleCliente_selTodoXId", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = idPosCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            posibleClientes = New List(Of EposibleCliente)
                            Dim posibleCliente As EposibleCliente = Nothing
                            Do While dr.Read
                                posibleCliente = New EposibleCliente( _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular2")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("estado")))
                                posibleClientes.Add(posibleCliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return posibleClientes
    End Function

End Class
